define(['jquery', 'bootstrap', 'backend', 'form'], function ($, undefined, Backend, Form) {
    var Controller = {
        index: function () {
            Controller.api.bindevent();
            if($('.express_type').size() > 0){
                $('.express_type').trigger("click");
            }else{
                $("input[name='row[express_type]']:first").trigger("click");
            }

            Form.api.bindevent($(".demo-form"), function (data, ret) {
                Controller.api.demo(ret);
            },function(data, ret){
                Controller.api.demo(ret);
            });
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
                //显示和隐藏
                $(document).on("click", "input[name='row[express_type]']", function () {
                    var type = $("input[name='row[express_type]']:checked").val();
                    if (type == 'kuaidiniao') {
                        $('.kuaidiniao').show();
                        $('.kuaidi100').hide();
                        $('.kuaidi100_customer').hide();
                        $('.ali').hide();
                    } else if (type == 'kuaidi100') {
                        $('.kuaidiniao').hide();
                        $('.kuaidi100').show();
                        $('.ali').hide();
                        $('.kuaidi100_customer').hide();
                    } else {
                        $('.kuaidiniao').hide();
                        $('.kuaidi100').hide();
                        $('.kuaidi100_customer').hide();
                        $('.ali').show();
                    }

                    if($('.kuaidi100_type').size() > 0){
                        $('.kuaidi100_type').trigger("click");
                    }else{
                        $("input[name='row[kuaidi100_type]']:first").trigger("click");
                    }
                });
                $(document).on("click", "input[name='row[kuaidi100_type]']", function () {
                    var kuaidi100_type = $("input[name='row[kuaidi100_type]']:checked").val();
                    if(kuaidi100_type == 'company'){
                        $('.kuaidi100_customer').show();
                    } else {
                        $('.kuaidi100_customer').hide();
                    }
                });
            },
            demo: function(ret){
                $('#express_content').html(syntaxHighlight(JSON.stringify(ret, null, 2)));
                function syntaxHighlight(json) {
                    if (typeof json != 'string') {
                        json = JSON.stringify(json, undefined, 2);
                    }
                    json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
                    return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
                        var cls = 'number';
                        if (/^"/.test(match)) {
                            if (/:$/.test(match)) {
                                cls = 'key';
                            } else {
                                cls = 'string';
                            }
                        } else if (/true|false/.test(match)) {
                            cls = 'boolean';
                        } else if (/null/.test(match)) {
                            cls = 'null';
                        }
                        return '<span class="' + cls + '">' + match + '</span>';
                    });
                }
            }
        }
    };
    return Controller;
});